

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>dcase_framework.parameters &mdash; DCASE2017 Baseline 1.0 documentation</title>
  

  
  
    <link rel="shortcut icon" href="../../_static/favicon.ico"/>
  
  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../../_static/theme_overrides.css" type="text/css" />
  

  
        <link rel="index" title="Index"
              href="../../genindex.html"/>
        <link rel="search" title="Search" href="../../search.html"/>
    <link rel="top" title="DCASE2017 Baseline 1.0 documentation" href="../../index.html"/>
        <link rel="up" title="Module code" href="../index.html"/> 

  
  <script src="../../_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="../../index.html" class="icon icon-home"> DCASE2017 Baseline
          

          
            
            <img src="../../_static/dcase2017_baseline.png" class="logo" />
          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <p class="caption"><span class="caption-text">Baseline system</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../system_description.html">System description</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#mlp-based-system-dcase2017-baseline">MLP based system, DCASE2017 baseline</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#gmm-based-approach">GMM based approach</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#processing-blocks">Processing blocks</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../applications.html">Applications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task1-acoustic-scene-classification"> Acoustic scene classification</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#results">Results</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task2-detection-of-rare-sound-events"> Detection of rare sound events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#id2">Results</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task3-sound-event-detection-in-real-life-audio"> Sound event detection in real life audio</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#id3">Results</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../usage_tutorial.html">Usage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../usage_tutorial.html#application-arguments">Application arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../usage_tutorial.html#basic-usage">Basic usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../parameterization.html">Parameterization</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-overwriting">Parameter overwriting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-file">Parameter file</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-hash">Parameter hash</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-sections">Parameter sections</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#flow">Flow</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#general">General</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#path">Path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#dataset">Dataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-extractor">Feature extractor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-stacker">Feature stacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-normalizer">Feature normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-aggregator">Feature aggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#learner">Learner</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#recognizer">Recognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#evaluator">Evaluator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#logging">Logging</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../reproducibility.html">Reproducibility</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../reproducibility.html#blas-libraries">BLAS libraries</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reproducibility.html#intel-math-kernel">Intel Math Kernel</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reproducibility.html#running-the-baseline-system">Running the baseline system</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">DCASE Framework</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../framework.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../framework.html#training-process">Training process</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../framework.html#testing-process">Testing process</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../extending_framework.html">Extending the framework</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#adding-datasets">Adding datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#adding-features">Adding features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#addinng-learners">Addinng learners</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#extending-applicationcore">Extending ApplicationCore</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../application_core.html">Application core</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#acousticsceneclassificationappcore">AcousticSceneClassificationAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.html">dcase_framework.application_core.AcousticSceneClassificationAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.show_dataset_list.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.show_parameters.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.initialize.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_extraction.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#soundeventappcore">SoundEventAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.html">dcase_framework.application_core.SoundEventAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.show_dataset_list.html">dcase_framework.application_core.SoundEventAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.show_parameters.html">dcase_framework.application_core.SoundEventAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.initialize.html">dcase_framework.application_core.SoundEventAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.feature_extraction.html">dcase_framework.application_core.SoundEventAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.feature_normalization.html">dcase_framework.application_core.SoundEventAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_training.html">dcase_framework.application_core.SoundEventAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_testing.html">dcase_framework.application_core.SoundEventAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_evaluation.html">dcase_framework.application_core.SoundEventAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#binarysoundeventappcore">BinarySoundEventAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.html">dcase_framework.application_core.BinarySoundEventAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.show_dataset_list.html">dcase_framework.application_core.BinarySoundEventAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.show_parameters.html">dcase_framework.application_core.BinarySoundEventAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.initialize.html">dcase_framework.application_core.BinarySoundEventAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction.html">dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization.html">dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_training.html">dcase_framework.application_core.BinarySoundEventAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_testing.html">dcase_framework.application_core.BinarySoundEventAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation.html">dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#appcore-base-class">AppCore &#8211; base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.html">dcase_framework.application_core.AppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.show_dataset_list.html">dcase_framework.application_core.AppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.show_parameters.html">dcase_framework.application_core.AppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.initialize.html">dcase_framework.application_core.AppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.feature_extraction.html">dcase_framework.application_core.AppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.feature_normalization.html">dcase_framework.application_core.AppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_training.html">dcase_framework.application_core.AppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_testing.html">dcase_framework.application_core.AppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_evaluation.html">dcase_framework.application_core.AppCore.system_evaluation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../parameters.html">Parameters</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#recipe">Recipe</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#paths-and-parameter-hash">Paths and parameter hash</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#parametercontainer">ParameterContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.html">dcase_framework.parameters.ParameterContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.load.html">dcase_framework.parameters.ParameterContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.save.html">dcase_framework.parameters.ParameterContainer.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.exists.html">dcase_framework.parameters.ParameterContainer.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.get_path.html">dcase_framework.parameters.ParameterContainer.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.show.html">dcase_framework.parameters.ParameterContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.log.html">dcase_framework.parameters.ParameterContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.override.html">dcase_framework.parameters.ParameterContainer.override</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.process.html">dcase_framework.parameters.ParameterContainer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.process_method_parameters.html">dcase_framework.parameters.ParameterContainer.process_method_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.get_hash.html">dcase_framework.parameters.ParameterContainer.get_hash</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../files.html">Files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#audiofile">AudioFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.html">dcase_framework.files.AudioFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.load.html">dcase_framework.files.AudioFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.save.html">dcase_framework.files.AudioFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.exists.html">dcase_framework.files.AudioFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.empty.html">dcase_framework.files.AudioFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#parameterfile">ParameterFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.html">dcase_framework.files.ParameterFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.load.html">dcase_framework.files.ParameterFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.save.html">dcase_framework.files.ParameterFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.exists.html">dcase_framework.files.ParameterFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.empty.html">dcase_framework.files.ParameterFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#featurefile">FeatureFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.html">dcase_framework.files.FeatureFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.load.html">dcase_framework.files.FeatureFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.save.html">dcase_framework.files.FeatureFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.exists.html">dcase_framework.files.FeatureFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.empty.html">dcase_framework.files.FeatureFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#datafile">DataFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.html">dcase_framework.files.DataFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.load.html">dcase_framework.files.DataFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.save.html">dcase_framework.files.DataFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.exists.html">dcase_framework.files.DataFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.empty.html">dcase_framework.files.DataFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#repositoryfile">RepositoryFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.html">dcase_framework.files.RepositoryFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.load.html">dcase_framework.files.RepositoryFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.exists.html">dcase_framework.files.RepositoryFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.empty.html">dcase_framework.files.RepositoryFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#textfile">TextFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.html">dcase_framework.files.TextFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.load.html">dcase_framework.files.TextFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.save.html">dcase_framework.files.TextFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.exists.html">dcase_framework.files.TextFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.empty.html">dcase_framework.files.TextFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#dictfile">DictFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.html">dcase_framework.files.DictFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.load.html">dcase_framework.files.DictFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.save.html">dcase_framework.files.DictFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.exists.html">dcase_framework.files.DictFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.empty.html">dcase_framework.files.DictFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#listfile">ListFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.html">dcase_framework.files.ListFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.load.html">dcase_framework.files.ListFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.save.html">dcase_framework.files.ListFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.exists.html">dcase_framework.files.ListFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.empty.html">dcase_framework.files.ListFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#mixins">Mixins</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FileMixin.html">dcase_framework.files.FileMixin</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../datasets.html">Datasets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#dataset-base-class">Dataset - Base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.html">dcase_framework.datasets.Dataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.initialize.html">dcase_framework.datasets.Dataset.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.show_info.html">dcase_framework.datasets.Dataset.show_info</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_files.html">dcase_framework.datasets.Dataset.audio_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_file_count.html">dcase_framework.datasets.Dataset.audio_file_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.meta.html">dcase_framework.datasets.Dataset.meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.meta_count.html">dcase_framework.datasets.Dataset.meta_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.error_meta.html">dcase_framework.datasets.Dataset.error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.error_meta_count.html">dcase_framework.datasets.Dataset.error_meta_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.fold_count.html">dcase_framework.datasets.Dataset.fold_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.scene_labels.html">dcase_framework.datasets.Dataset.scene_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.scene_label_count.html">dcase_framework.datasets.Dataset.scene_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.event_labels.html">dcase_framework.datasets.Dataset.event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.event_label_count.html">dcase_framework.datasets.Dataset.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_tags.html">dcase_framework.datasets.Dataset.audio_tags</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_tag_count.html">dcase_framework.datasets.Dataset.audio_tag_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.download_packages.html">dcase_framework.datasets.Dataset.download_packages</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.extract.html">dcase_framework.datasets.Dataset.extract</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.train.html">dcase_framework.datasets.Dataset.train</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.test.html">dcase_framework.datasets.Dataset.test</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.eval.html">dcase_framework.datasets.Dataset.eval</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.train_files.html">dcase_framework.datasets.Dataset.train_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.test_files.html">dcase_framework.datasets.Dataset.test_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.eval_files.html">dcase_framework.datasets.Dataset.eval_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.validation_files.html">dcase_framework.datasets.Dataset.validation_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.folds.html">dcase_framework.datasets.Dataset.folds</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_meta.html">dcase_framework.datasets.Dataset.file_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_error_meta.html">dcase_framework.datasets.Dataset.file_error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_error_meta.html">dcase_framework.datasets.Dataset.file_error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.relative_to_absolute_path.html">dcase_framework.datasets.Dataset.relative_to_absolute_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.absolute_to_relative.html">dcase_framework.datasets.Dataset.absolute_to_relative</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#acousticscenedataset">AcousticSceneDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.AcousticSceneDataset.html">dcase_framework.datasets.AcousticSceneDataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2017_DevelopmentSet.html">dcase_framework.datasets.TUTAcousticScenes_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2016_DevelopmentSet.html">dcase_framework.datasets.TUTAcousticScenes_2016_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2016_EvaluationSet.html">dcase_framework.datasets.TUTAcousticScenes_2016_EvaluationSet</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#soundeventdataset">SoundEventDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.html">dcase_framework.datasets.SoundEventDataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.event_label_count.html">dcase_framework.datasets.SoundEventDataset.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.event_labels.html">dcase_framework.datasets.SoundEventDataset.event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.train.html">dcase_framework.datasets.SoundEventDataset.train</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.test.html">dcase_framework.datasets.SoundEventDataset.test</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTRareSoundEvents_2017_DevelopmentSet.html">dcase_framework.datasets.TUTRareSoundEvents_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2017_DevelopmentSet.html">dcase_framework.datasets.TUTSoundEvents_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2016_DevelopmentSet.html">dcase_framework.datasets.TUTSoundEvents_2016_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2016_EvaluationSet.html">dcase_framework.datasets.TUTSoundEvents_2016_EvaluationSet</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#audiotaggingdataset">AudioTaggingDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.AudioTaggingDataset.html">dcase_framework.datasets.AudioTaggingDataset</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../metadata.html">Meta data</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#metadataitem">MetaDataItem</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.html">dcase_framework.metadata.MetaDataItem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.id.html">dcase_framework.metadata.MetaDataItem.id</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.file.html">dcase_framework.metadata.MetaDataItem.file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.scene_label.html">dcase_framework.metadata.MetaDataItem.scene_label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_label.html">dcase_framework.metadata.MetaDataItem.event_label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_onset.html">dcase_framework.metadata.MetaDataItem.event_onset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_offset.html">dcase_framework.metadata.MetaDataItem.event_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.identifier.html">dcase_framework.metadata.MetaDataItem.identifier</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.source_label.html">dcase_framework.metadata.MetaDataItem.source_label</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#metadatacontainer">MetaDataContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.html">dcase_framework.metadata.MetaDataContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.log.html">dcase_framework.metadata.MetaDataContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.show.html">dcase_framework.metadata.MetaDataContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.get_string.html">dcase_framework.metadata.MetaDataContainer.get_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.update.html">dcase_framework.metadata.MetaDataContainer.update</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter.html">dcase_framework.metadata.MetaDataContainer.filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter_time_segment.html">dcase_framework.metadata.MetaDataContainer.filter_time_segment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.process_events.html">dcase_framework.metadata.MetaDataContainer.process_events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.remove_field.html">dcase_framework.metadata.MetaDataContainer.remove_field</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.slice_field.html">dcase_framework.metadata.MetaDataContainer.slice_field</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter_time_segment.html">dcase_framework.metadata.MetaDataContainer.filter_time_segment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.add_time_offset.html">dcase_framework.metadata.MetaDataContainer.add_time_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.file_list.html">dcase_framework.metadata.MetaDataContainer.file_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_count.html">dcase_framework.metadata.MetaDataContainer.event_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.scene_label_count.html">dcase_framework.metadata.MetaDataContainer.scene_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_label_count.html">dcase_framework.metadata.MetaDataContainer.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.unique_scene_labels.html">dcase_framework.metadata.MetaDataContainer.unique_scene_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.unique_event_labels.html">dcase_framework.metadata.MetaDataContainer.unique_event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.max_offset.html">dcase_framework.metadata.MetaDataContainer.max_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.load.html">dcase_framework.metadata.MetaDataContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.save.html">dcase_framework.metadata.MetaDataContainer.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_stat_counts.html">dcase_framework.metadata.MetaDataContainer.event_stat_counts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_roll.html">dcase_framework.metadata.MetaDataContainer.event_roll</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#eventroll">EventRoll</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.html">dcase_framework.metadata.EventRoll</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.roll.html">dcase_framework.metadata.EventRoll.roll</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.pad.html">dcase_framework.metadata.EventRoll.pad</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.plot.html">dcase_framework.metadata.EventRoll.plot</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#probabilityitem">ProbabilityItem</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.html">dcase_framework.metadata.ProbabilityItem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.id.html">dcase_framework.metadata.ProbabilityItem.id</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.file.html">dcase_framework.metadata.ProbabilityItem.file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.label.html">dcase_framework.metadata.ProbabilityItem.label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.timestamp.html">dcase_framework.metadata.ProbabilityItem.timestamp</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.probability.html">dcase_framework.metadata.ProbabilityItem.probability</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.get_list.html">dcase_framework.metadata.ProbabilityItem.get_list</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#probabilitycontainer">ProbabilityContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.html">dcase_framework.metadata.ProbabilityContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.log.html">dcase_framework.metadata.ProbabilityContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.show.html">dcase_framework.metadata.ProbabilityContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.update.html">dcase_framework.metadata.ProbabilityContainer.update</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.file_list.html">dcase_framework.metadata.ProbabilityContainer.file_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.unique_labels.html">dcase_framework.metadata.ProbabilityContainer.unique_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.filter.html">dcase_framework.metadata.ProbabilityContainer.filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.get_string.html">dcase_framework.metadata.ProbabilityContainer.get_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.load.html">dcase_framework.metadata.ProbabilityContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.save.html">dcase_framework.metadata.ProbabilityContainer.save</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../features.html">Features</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurecontainer">FeatureContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.html">dcase_framework.features.FeatureContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.show.html">dcase_framework.features.FeatureContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.log.html">dcase_framework.features.FeatureContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.get_path.html">dcase_framework.features.FeatureContainer.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.shape.html">dcase_framework.features.FeatureContainer.shape</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.channels.html">dcase_framework.features.FeatureContainer.channels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.frames.html">dcase_framework.features.FeatureContainer.frames</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.vector_length.html">dcase_framework.features.FeatureContainer.vector_length</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.feat.html">dcase_framework.features.FeatureContainer.feat</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.stat.html">dcase_framework.features.FeatureContainer.stat</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.meta.html">dcase_framework.features.FeatureContainer.meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.load.html">dcase_framework.features.FeatureContainer.load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurerepository">FeatureRepository</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.html">dcase_framework.features.FeatureRepository</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.show.html">dcase_framework.features.FeatureRepository.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.log.html">dcase_framework.features.FeatureRepository.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.get_path.html">dcase_framework.features.FeatureRepository.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.load.html">dcase_framework.features.FeatureRepository.load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featureextractor">FeatureExtractor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.html">dcase_framework.features.FeatureExtractor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.extract.html">dcase_framework.features.FeatureExtractor.extract</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.get_default_parameters.html">dcase_framework.features.FeatureExtractor.get_default_parameters</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurenormalizer">FeatureNormalizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.html">dcase_framework.features.FeatureNormalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.accumulate.html">dcase_framework.features.FeatureNormalizer.accumulate</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.finalize.html">dcase_framework.features.FeatureNormalizer.finalize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.normalize.html">dcase_framework.features.FeatureNormalizer.normalize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.process.html">dcase_framework.features.FeatureNormalizer.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurestacker">FeatureStacker</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.html">dcase_framework.features.FeatureStacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.normalizer.html">dcase_framework.features.FeatureStacker.normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.feature_vector.html">dcase_framework.features.FeatureStacker.feature_vector</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.process.html">dcase_framework.features.FeatureStacker.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featureaggregator">FeatureAggregator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureAggregator.html">dcase_framework.features.FeatureAggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureAggregator.process.html">dcase_framework.features.FeatureAggregator.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featuremasker">FeatureMasker</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureMasker.html">dcase_framework.features.FeatureMasker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureMasker.process.html">dcase_framework.features.FeatureMasker.process</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../learners.html">Learners</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#sceneclassifier">SceneClassifier</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifiergmm">SceneClassifierGMM</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.html">dcase_framework.learners.SceneClassifierGMM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.learn.html">dcase_framework.learners.SceneClassifierGMM.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.predict.html">dcase_framework.learners.SceneClassifierGMM.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifiermlp">SceneClassifierMLP</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.html">dcase_framework.learners.SceneClassifierMLP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.learn.html">dcase_framework.learners.SceneClassifierMLP.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.predict.html">dcase_framework.learners.SceneClassifierMLP.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifierkerassequential">SceneClassifierKerasSequential</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.html">dcase_framework.learners.SceneClassifierKerasSequential</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.learn.html">dcase_framework.learners.SceneClassifierKerasSequential.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.predict.html">dcase_framework.learners.SceneClassifierKerasSequential.predict</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#eventdetector">EventDetector</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetector.html">dcase_framework.learners.EventDetector</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectorgmm">EventDetectorGMM</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.html">dcase_framework.learners.EventDetectorGMM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.learn.html">dcase_framework.learners.EventDetectorGMM.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.predict.html">dcase_framework.learners.EventDetectorGMM.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectormlp">EventDetectorMLP</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.html">dcase_framework.learners.EventDetectorMLP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.learn.html">dcase_framework.learners.EventDetectorMLP.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.predict.html">dcase_framework.learners.EventDetectorMLP.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectorkerassequential">EventDetectorKerasSequential</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.html">dcase_framework.learners.EventDetectorKerasSequential</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.learn.html">dcase_framework.learners.EventDetectorKerasSequential.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.predict.html">dcase_framework.learners.EventDetectorKerasSequential.predict</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#learnercontainer-base-class">LearnerContainer - Base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.html">dcase_framework.learners.LearnerContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.class_labels.html">dcase_framework.learners.LearnerContainer.class_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.method.html">dcase_framework.learners.LearnerContainer.method</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.params.html">dcase_framework.learners.LearnerContainer.params</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_masker.html">dcase_framework.learners.LearnerContainer.feature_masker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_normalizer.html">dcase_framework.learners.LearnerContainer.feature_normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_stacker.html">dcase_framework.learners.LearnerContainer.feature_stacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_aggregator.html">dcase_framework.learners.LearnerContainer.feature_aggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.model.html">dcase_framework.learners.LearnerContainer.model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.set_seed.html">dcase_framework.learners.LearnerContainer.set_seed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.learner_params.html">dcase_framework.learners.LearnerContainer.learner_params</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../recognizers.html">Recognizers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#scenerecognizer">SceneRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.SceneRecognizer.html">dcase_framework.recognizers.SceneRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.SceneRecognizer.process.html">dcase_framework.recognizers.SceneRecognizer.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#eventrecognizer">EventRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.html">dcase_framework.recognizers.EventRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.process.html">dcase_framework.recognizers.EventRecognizer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.process_ratio.html">dcase_framework.recognizers.EventRecognizer.process_ratio</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#baserecognizer">BaseRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.html">dcase_framework.recognizers.BaseRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.collapse_probabilities.html">dcase_framework.recognizers.BaseRecognizer.collapse_probabilities</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.collapse_probabilities_windowed.html">dcase_framework.recognizers.BaseRecognizer.collapse_probabilities_windowed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.find_contiguous_regions.html">dcase_framework.recognizers.BaseRecognizer.find_contiguous_regions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.process_activity.html">dcase_framework.recognizers.BaseRecognizer.process_activity</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../data.html">Data utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#datasequencer">DataSequencer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.html">dcase_framework.data.DataSequencer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.process.html">dcase_framework.data.DataSequencer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.increase_shifting.html">dcase_framework.data.DataSequencer.increase_shifting</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#dataprocessor">DataProcessor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.html">dcase_framework.data.DataProcessor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.load.html">dcase_framework.data.DataProcessor.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process.html">dcase_framework.data.DataProcessor.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_features.html">dcase_framework.data.DataProcessor.process_features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_activity_data.html">dcase_framework.data.DataProcessor.process_activity_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_data.html">dcase_framework.data.DataProcessor.process_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.call_method.html">dcase_framework.data.DataProcessor.call_method</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#databuffer">DataBuffer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.html">dcase_framework.data.DataBuffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.count.html">dcase_framework.data.DataBuffer.count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.full.html">dcase_framework.data.DataBuffer.full</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.key_exists.html">dcase_framework.data.DataBuffer.key_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.set.html">dcase_framework.data.DataBuffer.set</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.get.html">dcase_framework.data.DataBuffer.get</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.clear.html">dcase_framework.data.DataBuffer.clear</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#processingchain">ProcessingChain</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.html">dcase_framework.data.ProcessingChain</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.process.html">dcase_framework.data.ProcessingChain.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.call_method.html">dcase_framework.data.ProcessingChain.call_method</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../keras_utils.html">Keras utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#kerasmixin">KerasMixin</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_model.html">dcase_framework.keras_utils.KerasMixin.create_model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_callback_list.html">dcase_framework.keras_utils.KerasMixin.create_callback_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_external_metric_evaluators.html">dcase_framework.keras_utils.KerasMixin.create_external_metric_evaluators</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.prepare_data.html">dcase_framework.keras_utils.KerasMixin.prepare_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.prepare_activity.html">dcase_framework.keras_utils.KerasMixin.prepare_activity</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.keras_model_exists.html">dcase_framework.keras_utils.KerasMixin.keras_model_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.log_model_summary.html">dcase_framework.keras_utils.KerasMixin.log_model_summary</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.plot_model.html">dcase_framework.keras_utils.KerasMixin.plot_model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.get_processing_interval.html">dcase_framework.keras_utils.KerasMixin.get_processing_interval</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#basecallback">BaseCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseCallback.html">dcase_framework.keras_utils.BaseCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#progressloggercallback">ProgressLoggerCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.ProgressLoggerCallback.html">dcase_framework.keras_utils.ProgressLoggerCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#progressplottercallback">ProgressPlotterCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.ProgressPlotterCallback.html">dcase_framework.keras_utils.ProgressPlotterCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#stoppercallback">StopperCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.StopperCallback.html">dcase_framework.keras_utils.StopperCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#stashercallback">StasherCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.StasherCallback.html">dcase_framework.keras_utils.StasherCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#basedatagenerator">BaseDataGenerator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.html">dcase_framework.keras_utils.BaseDataGenerator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.input_size.html">dcase_framework.keras_utils.BaseDataGenerator.input_size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.data_size.html">dcase_framework.keras_utils.BaseDataGenerator.data_size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.steps_count.html">dcase_framework.keras_utils.BaseDataGenerator.steps_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.info.html">dcase_framework.keras_utils.BaseDataGenerator.info</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#featuregenerator">FeatureGenerator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.FeatureGenerator.html">dcase_framework.keras_utils.FeatureGenerator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.FeatureGenerator.generator.html">dcase_framework.keras_utils.FeatureGenerator.generator</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../ui.html">User interfacing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../ui.html#fancylogger">FancyLogger</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.html">dcase_framework.ui.FancyLogger</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.title.html">dcase_framework.ui.FancyLogger.title</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.section_header.html">dcase_framework.ui.FancyLogger.section_header</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.foot.html">dcase_framework.ui.FancyLogger.foot</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.line.html">dcase_framework.ui.FancyLogger.line</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.data.html">dcase_framework.ui.FancyLogger.data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.info.html">dcase_framework.ui.FancyLogger.info</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.debug.html">dcase_framework.ui.FancyLogger.debug</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.error.html">dcase_framework.ui.FancyLogger.error</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../utils.html">Utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#utility-functions">Utility functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.setup_logging.html">dcase_framework.utils.setup_logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_parameter_hash.html">dcase_framework.utils.get_parameter_hash</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_class_inheritors.html">dcase_framework.utils.get_class_inheritors</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_byte_string.html">dcase_framework.utils.get_byte_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.argument_file_exists.html">dcase_framework.utils.argument_file_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.filelist_exists.html">dcase_framework.utils.filelist_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.posix_path.html">dcase_framework.utils.posix_path</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#timer">Timer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.html">dcase_framework.utils.Timer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.start.html">dcase_framework.utils.Timer.start</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.stop.html">dcase_framework.utils.Timer.stop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.elapsed.html">dcase_framework.utils.Timer.elapsed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.get_string.html">dcase_framework.utils.Timer.get_string</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#suppressstdoutandstderr">SuppressStdoutAndStderr</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SuppressStdoutAndStderr.html">dcase_framework.utils.SuppressStdoutAndStderr</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#simplemathstringevaluator">SimpleMathStringEvaluator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SimpleMathStringEvaluator.html">dcase_framework.utils.SimpleMathStringEvaluator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SimpleMathStringEvaluator.eval.html">dcase_framework.utils.SimpleMathStringEvaluator.eval</a></li>
</ul>
</li>
</ul>
</li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../index.html">DCASE2017 Baseline</a>
        
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../index.html">Docs</a> &raquo;</li>
        
          <li><a href="../index.html">Module code</a> &raquo;</li>
        
      <li>dcase_framework.parameters</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <h1>Source code for dcase_framework.parameters</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Parameters</span>
<span class="sd">==========</span>
<span class="sd">Class for parameter handling. ParameterContainer is based on dict and supports reading and writing to YAML files.</span>

<span class="sd">Example YAML file:</span>

<span class="sd">.. code-block:: yaml</span>

<span class="sd">    active_set: SET1</span>

<span class="sd">    sets:</span>
<span class="sd">        - set_id: SET1</span>
<span class="sd">          processor1:</span>
<span class="sd">            method: special_method_2</span>
<span class="sd">        - set_id: SET2</span>
<span class="sd">          processor1:</span>
<span class="sd">            method: special_method_3</span>

<span class="sd">    defaults:</span>
<span class="sd">        flow:</span>
<span class="sd">            task1: true</span>
<span class="sd">            task2: true</span>
<span class="sd">            task3: true</span>

<span class="sd">        processor1:</span>
<span class="sd">            method: special_method_1</span>
<span class="sd">            field1: 44100</span>
<span class="sd">            field2: 22050</span>

<span class="sd">        processor1_method_parameters:</span>
<span class="sd">            special_method_1:</span>
<span class="sd">                field1: &#39;test1&#39;</span>

<span class="sd">            special_method_2:</span>
<span class="sd">                field1: &#39;test2&#39;</span>

<span class="sd">            special_method_3:</span>
<span class="sd">                field1: &#39;test3&#39;</span>

<span class="sd">        processor2:</span>
<span class="sd">            recipe: special_method_1;special_method_2;special_method_3</span>

<span class="sd">        processor2_method_parameters:</span>
<span class="sd">            special_method_1:</span>
<span class="sd">                field1: &#39;test1&#39;</span>

<span class="sd">            special_method_2:</span>
<span class="sd">                field1: &#39;test2&#39;</span>

<span class="sd">            special_method_3:</span>
<span class="sd">                field1: &#39;test3&#39;</span>

<span class="sd">Once :func:`ParameterContainer.process` is called:</span>

<span class="sd">1. ``active_set`` field is used to select parameter set to override parameters in the ``defaults`` block. After this parameter container contains only parameters inside defaults block with overrides.</span>
<span class="sd">2. Each main level section (``flow``, ``processor``, ``processor_method_parameters`` in the example above) are processed one by one.</span>

<span class="sd">    - If section contains ``method``-field, parameters are copied from ``[SECTION_NAME]_method_parameters`` under ``parameters``-field.</span>
<span class="sd">    - If section contains ``recipe``-field, recipe is first parsed and parameters are copied from ``[SECTION_NAME]_method_parameters`` under ``parameters``-field.</span>

<span class="sd">Parameters after processing:</span>

<span class="sd">.. code-block:: yaml</span>

<span class="sd">    flow:</span>
<span class="sd">        task1: true</span>
<span class="sd">        task2: true</span>
<span class="sd">        task3: true</span>

<span class="sd">    processor1:</span>
<span class="sd">        _hash: 1d511b716b3cd075fbc752750b0c5932</span>
<span class="sd">        method: special_method_2</span>
<span class="sd">        field1: 44100</span>
<span class="sd">        field2: 22050</span>
<span class="sd">        parameters:</span>
<span class="sd">            field1: &#39;test2&#39;</span>

<span class="sd">    processor2:</span>
<span class="sd">        _hash: f17897bd2a133d1c1d1c853e491d2a3a</span>
<span class="sd">        recipe:</span>
<span class="sd">            - method: special_method_1</span>
<span class="sd">            - method: special_method_2</span>
<span class="sd">            - method: special_method_3</span>

<span class="sd">        special_method_1;special_method_2;special_method_3</span>
<span class="sd">        parameters:</span>
<span class="sd">            special_method_1:</span>
<span class="sd">                field1: &#39;test1&#39;</span>

<span class="sd">            special_method_2:</span>
<span class="sd">                field1: &#39;test2&#39;</span>

<span class="sd">            special_method_3:</span>
<span class="sd">                field1: &#39;test3&#39;</span>

<span class="sd">Recipe</span>
<span class="sd">^^^^^^</span>

<span class="sd">Recipe special field can be used to select multiple methods. It is specially useful for constructing feature matrix from multiple sources.</span>
<span class="sd">Method blocks in the string are delimited with ``;`` (e.g. method1;method2;method1).</span>

<span class="sd">Individual items in this list can be formatted following way:</span>

<span class="sd">- [method_name (string)]                                                       =&gt; full vector</span>
<span class="sd">- [method_name (string)]=[start index (int)]-[end index (int)]                 =&gt; default channel 0 and vector [start:end]</span>
<span class="sd">- [method_name (string)]=[channel (int)]:[start index (int)]-[end index (int)] =&gt; specified channel and vector [start:end]</span>
<span class="sd">- [method_name (string)]=1,2,3,4,5                                             =&gt; vector [1,2,3,4,4]</span>
<span class="sd">- [method_name (string)]=0                                                     =&gt; specified channel and full vector</span>


<span class="sd">Paths and parameter hash</span>
<span class="sd">^^^^^^^^^^^^^^^^^^^^^^^^</span>

<span class="sd">Parameters under each section is used to form parameter hash. ParameterContainer&#39;s property</span>
<span class="sd">:py:attr:`dcase_framework.parameters.ParameterContainer.path_structure` defines how these section wise parameter hashes</span>
<span class="sd">are used to form storage paths for each section. The main idea is that when parameters change path will change and when</span>
<span class="sd">the parameters are the same path is the same allowing reusing already stored data (process with correct parameters).</span>

<span class="sd">**Path structure**</span>

<span class="sd">Example definition for path structure.</span>

<span class="sd">.. code-block:: python</span>

<span class="sd">    self.path_structure = {</span>
<span class="sd">        &#39;feature_extractor&#39;: [</span>
<span class="sd">            &#39;feature_extractor.parameters.*&#39;</span>
<span class="sd">        ],</span>
<span class="sd">        &#39;feature_normalizer&#39;: [</span>
<span class="sd">            &#39;feature_extractor.parameters.*&#39;</span>
<span class="sd">        ],</span>
<span class="sd">        &#39;learner&#39;: [</span>
<span class="sd">            &#39;feature_extractor&#39;,</span>
<span class="sd">            &#39;feature_normalizer&#39;,</span>
<span class="sd">            &#39;feature_aggregator&#39;,</span>
<span class="sd">            &#39;learner&#39;</span>
<span class="sd">        ],</span>
<span class="sd">        &#39;recognizer&#39;: [</span>
<span class="sd">            &#39;feature_extractor&#39;,</span>
<span class="sd">            &#39;feature_normalizer&#39;,</span>
<span class="sd">            &#39;feature_aggregator&#39;,</span>
<span class="sd">            &#39;learner&#39;,</span>
<span class="sd">            &#39;recognizer&#39;</span>
<span class="sd">        ],</span>
<span class="sd">        &#39;evaluator&#39;: [</span>
<span class="sd">        ]</span>
<span class="sd">    }</span>

<span class="sd">One can use wild card for lists (e.g. ``feature_extractor.parameters.*``), in this case each item in the list is producing individual path. This can be used to</span>
<span class="sd">make paths, for examples, for each feature extractor separately.</span>


<span class="sd">This will lead following paths:</span>

<span class="sd">.. code-block:: txt</span>

<span class="sd">    feature_extractor/feature_extractor_68a40f5e3b77df9564aaa68c92e95be9/</span>
<span class="sd">    feature_extractor/feature_extractor_74c5e3ce692f5973c5071c1cf0a89ee0/</span>
<span class="sd">    feature_extractor/feature_extractor_661304966061610bc09744166b10f76e/</span>

<span class="sd">    feature_normalizer/feature_extractor_68a40f5e3b77df9564aaa68c92e95be9/</span>
<span class="sd">    feature_normalizer/feature_extractor_74c5e3ce692f5973c5071c1cf0a89ee0/</span>
<span class="sd">    feature_normalizer/feature_extractor_661304966061610bc09744166b10f76e/</span>

<span class="sd">    learner/feature_extractor_5ca1f32c65b3eea59e1bb27b09b747ea/feature_normalizer_67b9b20ff555e8eaee22f5e50695df8b/feature_aggregator_baaf606d9ac1eaca43a6a24b599998a9/learner_624a422b47a32e20b90ad6e6151057f8</span>

<span class="sd">    recognizer/feature_extractor_5ca1f32c65b3eea59e1bb27b09b747ea/feature_normalizer_67b9b20ff555e8eaee22f5e50695df8b/feature_aggregator_baaf606d9ac1eaca43a6a24b599998a9/learner_624a422b47a32e20b90ad6e6151057f8/recognizer_08c503973f61ef4c4c5f7c56709d801c</span>

<span class="sd">Parameter section used to form hash will be saved in each sub folder (parameters.yaml) to make it easier handle files manually if needed.</span>

<span class="sd">**Hash**</span>

<span class="sd">Parameter hash value is md5 hash for stringified parameter dict of the section, with a few clean ups helping to keep</span>
<span class="sd">hash compatible when extending parameter selection in the section later. Following rules are used:</span>

<span class="sd">- If section contains field ``enable`` with value ``False`` all other fields inside this section are excluded from the parameter hash calculation. This will make the hash robust if section is not used but still unused parameters are changed.</span>
<span class="sd">- If section contains fields with value ``False``, this field is excluded from the parameter hash calculation. This will enable to add new flag parameters, without changing hash, just define the new flag so that previous behaviour is happening when this field is set to false.</span>
<span class="sd">- If section contains any of the ``non_hashable_fields`` fields, those are excluded from the parameter hash calculation. These fields are set when :class:`ParameterContainer` is constructed, and they usually are fields used to print various values to the console. These fields do not change the system output to be saved onto disk, and hence they are excluded from hash.</span>

<span class="sd">Use :py:attr:`dcase_framework.parameters.ParameterContainer.non_hashable_fields` to exclude fields from hash. use  :py:attr:`dcase_framework.parameters.ParameterContainer.control_sections` to omit hash calculation for parameter</span>
<span class="sd">sections which do not needed it.</span>

<span class="sd">ParameterContainer</span>
<span class="sd">^^^^^^^^^^^^^^^^^^</span>

<span class="sd">Usage examples:</span>

<span class="sd">.. code-block:: python</span>
<span class="sd">    :linenos:</span>

<span class="sd">    # Load parameters</span>
<span class="sd">    params = ParameterContainer().load(filename=&#39;parameters.yaml&#39;)</span>
<span class="sd">    # Process parameters</span>
<span class="sd">    params.process()</span>
<span class="sd">    # Print parameters</span>
<span class="sd">    print(params)</span>
<span class="sd">    # Get parameters</span>
<span class="sd">    value = get_path(&#39;section1.parameter1&#39;)</span>

<span class="sd">.. autosummary::</span>
<span class="sd">    :toctree: generated/</span>

<span class="sd">    ParameterContainer</span>
<span class="sd">    ParameterContainer.load</span>
<span class="sd">    ParameterContainer.save</span>
<span class="sd">    ParameterContainer.exists</span>
<span class="sd">    ParameterContainer.get_path</span>
<span class="sd">    ParameterContainer.show</span>
<span class="sd">    ParameterContainer.log</span>
<span class="sd">    ParameterContainer.override</span>
<span class="sd">    ParameterContainer.process</span>
<span class="sd">    ParameterContainer.process_method_parameters</span>
<span class="sd">    ParameterContainer.get_hash</span>

<span class="sd">&quot;&quot;&quot;</span>

<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">print_function</span><span class="p">,</span> <span class="n">absolute_import</span>
<span class="kn">from</span> <span class="nn">six</span> <span class="k">import</span> <span class="n">iteritems</span>

<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">hashlib</span>
<span class="kn">import</span> <span class="nn">json</span>
<span class="kn">import</span> <span class="nn">copy</span>
<span class="kn">import</span> <span class="nn">numpy</span>
<span class="kn">import</span> <span class="nn">itertools</span>
<span class="kn">import</span> <span class="nn">platform</span>

<span class="kn">from</span> <span class="nn">.files</span> <span class="k">import</span> <span class="n">ParameterFile</span>
<span class="kn">from</span> <span class="nn">.containers</span> <span class="k">import</span> <span class="n">ContainerMixin</span><span class="p">,</span> <span class="n">DottedDict</span>


<div class="viewcode-block" id="ParameterContainer"><a class="viewcode-back" href="../../generated/dcase_framework.parameters.ParameterContainer.html#dcase_framework.parameters.ParameterContainer">[docs]</a><span class="k">class</span> <span class="nc">ParameterContainer</span><span class="p">(</span><span class="n">ParameterFile</span><span class="p">,</span> <span class="n">ContainerMixin</span><span class="p">):</span>
<div class="viewcode-block" id="ParameterContainer.__init__"><a class="viewcode-back" href="../../generated/dcase_framework.parameters.ParameterContainer.html#dcase_framework.parameters.ParameterContainer.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Constructor</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        project_base : str</span>
<span class="sd">            Absolute path to the project root</span>
<span class="sd">        section_process_order : list, optional</span>
<span class="sd">            Parameter section processing order. Given dict is used to override internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        path_structure : dict of lists, optional</span>
<span class="sd">            Defines how paths are created, section hash is used to create unique folder names. Given dict is used to</span>
<span class="sd">            override internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        method_dependencies : dict of dicts, optional</span>
<span class="sd">            Given dict is used to override internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        magic_field : dict, optional</span>
<span class="sd">            Dict of field names for specific tasks. Given dict is used to override internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        non_hashable_fields : list, optional</span>
<span class="sd">            List of fields skipped when parameter hash for the section is calculated. Given list is used to override</span>
<span class="sd">            internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        control_sections : list, optional</span>
<span class="sd">            List of top level sections used for framework control, for these section no hash is calculated. Given list</span>
<span class="sd">            is used to override internal default list.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        &quot;&quot;&quot;</span>

        <span class="nb">super</span><span class="p">(</span><span class="n">ParameterContainer</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>

        <span class="c1"># Mark container non-processed</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">processed</span> <span class="o">=</span> <span class="kc">False</span>

        <span class="c1"># Project base path</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;project_base&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">project_base</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;project_base&#39;</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">project_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">realpath</span><span class="p">(</span><span class="vm">__file__</span><span class="p">))</span>
            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;src&#39;</span><span class="p">:</span>
                <span class="c1"># If we are in &#39;src&#39; folder remove one level</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">project_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>

        <span class="c1"># Define section processing order</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">section_process_order</span> <span class="o">=</span> <span class="p">[</span>
            <span class="s1">&#39;flow&#39;</span><span class="p">,</span>
            <span class="s1">&#39;general&#39;</span><span class="p">,</span>
            <span class="s1">&#39;logging&#39;</span><span class="p">,</span>
            <span class="s1">&#39;path&#39;</span><span class="p">,</span>
            <span class="s1">&#39;dataset&#39;</span><span class="p">,</span>
            <span class="s1">&#39;dataset_method_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_extractor&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_extractor_method_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_stacker&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_stacker_method_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_normalizer&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_normalizer_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_aggregator&#39;</span><span class="p">,</span>
            <span class="s1">&#39;feature_aggregator_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;learner&#39;</span><span class="p">,</span>
            <span class="s1">&#39;recognizer&#39;</span><span class="p">,</span>
            <span class="s1">&#39;learner_method_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;recognizer_method_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;evaluator&#39;</span><span class="p">,</span>
        <span class="p">]</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;section_process_order&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">path_structure</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;section_process_order&#39;</span><span class="p">))</span>

        <span class="c1"># Define how paths are constructed from section hashes</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">path_structure</span> <span class="o">=</span> <span class="p">{</span>
            <span class="s1">&#39;feature_extractor&#39;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s1">&#39;feature_extractor.parameters.*&#39;</span>
            <span class="p">],</span>
            <span class="s1">&#39;feature_normalizer&#39;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s1">&#39;feature_extractor.parameters.*&#39;</span>
            <span class="p">],</span>
            <span class="s1">&#39;learner&#39;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s1">&#39;feature_extractor&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_stacker&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_normalizer&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_aggregator&#39;</span><span class="p">,</span>
                <span class="s1">&#39;learner&#39;</span>
            <span class="p">],</span>
            <span class="s1">&#39;recognizer&#39;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s1">&#39;feature_extractor&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_stacker&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_normalizer&#39;</span><span class="p">,</span>
                <span class="s1">&#39;feature_aggregator&#39;</span><span class="p">,</span>
                <span class="s1">&#39;learner&#39;</span><span class="p">,</span>
                <span class="s1">&#39;recognizer&#39;</span>
            <span class="p">],</span>
            <span class="s1">&#39;evaluator&#39;</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">]</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path_structure&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">path_structure</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;path_structure&#39;</span><span class="p">))</span>

        <span class="c1"># Method dependencies map</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span> <span class="o">=</span> <span class="p">{</span>
            <span class="s1">&#39;feature_extractor&#39;</span><span class="p">:</span> <span class="p">{</span>
                <span class="s1">&#39;mel&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
                <span class="s1">&#39;mfcc&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
                <span class="s1">&#39;mfcc_delta&#39;</span><span class="p">:</span> <span class="s1">&#39;feature_extractor.mfcc&#39;</span><span class="p">,</span>
                <span class="s1">&#39;mfcc_acceleration&#39;</span><span class="p">:</span> <span class="s1">&#39;feature_extractor.mfcc&#39;</span><span class="p">,</span>
            <span class="p">},</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;method_dependencies&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;method_dependencies&#39;</span><span class="p">))</span>

        <span class="c1"># Map for magic field names</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span> <span class="o">=</span> <span class="p">{</span>
            <span class="s1">&#39;default-parameters&#39;</span><span class="p">:</span> <span class="s1">&#39;defaults&#39;</span><span class="p">,</span>
            <span class="s1">&#39;set-list&#39;</span><span class="p">:</span> <span class="s1">&#39;sets&#39;</span><span class="p">,</span>
            <span class="s1">&#39;set-id&#39;</span><span class="p">:</span> <span class="s1">&#39;set_id&#39;</span><span class="p">,</span>
            <span class="s1">&#39;active-set&#39;</span><span class="p">:</span> <span class="s1">&#39;active_set&#39;</span><span class="p">,</span>
            <span class="s1">&#39;parameters&#39;</span><span class="p">:</span> <span class="s1">&#39;parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;method&#39;</span><span class="p">:</span> <span class="s1">&#39;method&#39;</span><span class="p">,</span>
            <span class="s1">&#39;recipe&#39;</span><span class="p">:</span> <span class="s1">&#39;recipe&#39;</span><span class="p">,</span>
            <span class="s1">&#39;path&#39;</span><span class="p">:</span> <span class="s1">&#39;path&#39;</span><span class="p">,</span>
            <span class="s1">&#39;flow&#39;</span><span class="p">:</span> <span class="s1">&#39;flow&#39;</span><span class="p">,</span>
            <span class="s1">&#39;logging&#39;</span><span class="p">:</span> <span class="s1">&#39;logging&#39;</span><span class="p">,</span>
            <span class="s1">&#39;general&#39;</span><span class="p">:</span> <span class="s1">&#39;general&#39;</span><span class="p">,</span>
            <span class="s1">&#39;evaluator&#39;</span><span class="p">:</span> <span class="s1">&#39;evaluator&#39;</span><span class="p">,</span>
        <span class="p">}</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;magic_field&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;magic_field&#39;</span><span class="p">))</span>

        <span class="c1"># Fields to be skipped when parameter hash is calculated</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">non_hashable_fields</span> <span class="o">=</span> <span class="p">[</span>
            <span class="s1">&#39;_hash&#39;</span><span class="p">,</span>
            <span class="s1">&#39;verbose&#39;</span><span class="p">,</span>
            <span class="s1">&#39;print_system_progress&#39;</span><span class="p">,</span>
            <span class="s1">&#39;log_system_parameters&#39;</span><span class="p">,</span>
            <span class="s1">&#39;log_system_progress&#39;</span><span class="p">,</span>
            <span class="s1">&#39;log_learner_status&#39;</span><span class="p">,</span>
            <span class="s1">&#39;show_model_information&#39;</span><span class="p">,</span>
            <span class="s1">&#39;use_ascii_progress_bar&#39;</span><span class="p">,</span>
            <span class="s1">&#39;label&#39;</span><span class="p">,</span>
            <span class="s1">&#39;active_scenes&#39;</span><span class="p">,</span>
            <span class="s1">&#39;active_events&#39;</span><span class="p">,</span>
            <span class="s1">&#39;plotting_rate&#39;</span><span class="p">,</span>
            <span class="s1">&#39;focus_span&#39;</span><span class="p">,</span>
            <span class="s1">&#39;output_format&#39;</span><span class="p">,</span>
        <span class="p">]</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;non_hashable_fields&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">non_hashable_fields</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;non_hashable_fields&#39;</span><span class="p">))</span>

        <span class="c1"># Parameters sections which will not be included in the master parameter hash</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span> <span class="o">=</span> <span class="p">[</span>
            <span class="s1">&#39;flow&#39;</span><span class="p">,</span>
            <span class="s1">&#39;path&#39;</span><span class="p">,</span>
            <span class="s1">&#39;logging&#39;</span><span class="p">,</span>
            <span class="s1">&#39;general&#39;</span><span class="p">,</span>
            <span class="s1">&#39;evaluator&#39;</span><span class="p">,</span>
        <span class="p">]</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;control_sections&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;control_sections&#39;</span><span class="p">))</span></div>

<div class="viewcode-block" id="ParameterContainer.override"><a class="viewcode-back" href="../../generated/dcase_framework.parameters.ParameterContainer.override.html#dcase_framework.parameters.ParameterContainer.override">[docs]</a>    <span class="k">def</span> <span class="nf">override</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">override</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Override container content recursively.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        override : dict, str</span>
<span class="sd">            Depending type following is done:</span>

<span class="sd">            - If dict given, this is used directly to override parameters in the container.</span>
<span class="sd">            - If str is given which is a filename of existing file on disk, parameter file is loaded and it is used to override container parameters</span>
<span class="sd">            - If str is given which contains JSON formatted parameters, content is used to override container parameters</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ImportError:</span>
<span class="sd">            JSON import failed</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Not JSON formatted string given</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        self</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">override</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">override</span><span class="o">=</span><span class="n">override</span><span class="p">)</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">override</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">override</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">override</span><span class="o">=</span><span class="n">ParameterFile</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">override</span><span class="p">)</span><span class="o">.</span><span class="n">load</span><span class="p">())</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">override</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
            <span class="k">try</span><span class="p">:</span>
                <span class="k">try</span><span class="p">:</span>
                    <span class="kn">import</span> <span class="nn">ujson</span> <span class="k">as</span> <span class="nn">json</span>
                <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
                    <span class="k">try</span><span class="p">:</span>
                        <span class="kn">import</span> <span class="nn">json</span>
                    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
                        <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unable to import json module&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
                        <span class="p">)</span>

                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                        <span class="k">raise</span> <span class="ne">ImportError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">override</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">override</span><span class="p">))</span>

            <span class="k">except</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Not JSON formatted string given&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">return</span> <span class="bp">self</span></div>

<div class="viewcode-block" id="ParameterContainer.process"><a class="viewcode-back" href="../../generated/dcase_framework.parameters.ParameterContainer.process.html#dcase_framework.parameters.ParameterContainer.process">[docs]</a>    <span class="k">def</span> <span class="nf">process</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">create_directories</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">create_parameter_hints</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Process parameters</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        create_directories : bool</span>
<span class="sd">            Create directories</span>
<span class="sd">            Default value &quot;True&quot;</span>
<span class="sd">        create_parameter_hints : bool</span>
<span class="sd">            Create parameters files to all data folders</span>
<span class="sd">            Default value &quot;True&quot;</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            No valid active set given</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        self</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Parameter container empty&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">processed</span><span class="p">:</span>
            <span class="k">for</span> <span class="n">section_id</span><span class="p">,</span> <span class="n">section</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span><span class="p">):</span>
                <span class="k">if</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span><span class="p">[</span><span class="n">section_id</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="n">section</span><span class="p">]</span>

            <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;default-parameters&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span> <span class="ow">and</span>
               <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;set-list&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span> <span class="ow">and</span>
               <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;active-set&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">):</span>

                <span class="n">default_params</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;default-parameters&#39;</span><span class="p">]])</span>
                <span class="n">active_set_id</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;active-set&#39;</span><span class="p">]]</span>

                <span class="n">override_params</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">_search_list_of_dictionaries</span><span class="p">(</span>
                        <span class="n">key</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;set-id&#39;</span><span class="p">],</span>
                        <span class="n">value</span><span class="o">=</span><span class="n">active_set_id</span><span class="p">,</span>
                        <span class="n">list_of_dictionaries</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;set-list&#39;</span><span class="p">]]</span>
                    <span class="p">)</span>
                <span class="p">)</span>

                <span class="k">if</span> <span class="ow">not</span> <span class="n">override_params</span><span class="p">:</span>
                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: No valid active set given [</span><span class="si">{set_name}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                        <span class="n">set_name</span><span class="o">=</span><span class="n">active_set_id</span>
                    <span class="p">)</span>

                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                <span class="nb">dict</span><span class="o">.</span><span class="n">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>                            <span class="c1"># Empty current content</span>
                <span class="nb">dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_params</span><span class="p">)</span>           <span class="c1"># Insert default parameters</span>
                <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;active_set&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">active_set_id</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">override</span><span class="o">=</span><span class="n">override_params</span><span class="p">)</span>        <span class="c1"># Merge override parameters into default parameters</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;default-parameters&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">:</span>
                <span class="n">default_params</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;default-parameters&#39;</span><span class="p">]])</span>
                <span class="nb">dict</span><span class="o">.</span><span class="n">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
                <span class="nb">dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_params</span><span class="p">)</span>

            <span class="c1"># Get processing order for sections</span>
            <span class="n">section_list</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">section_process_order</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span> <span class="o">-</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">section_process_order</span><span class="p">)):</span>
                <span class="k">if</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">:</span>
                    <span class="n">section_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">section</span><span class="p">)</span>

            <span class="c1"># Parameter processing starts</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">_convert_main_level_to_dotted</span><span class="p">()</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">_preprocess_paths</span><span class="p">()</span>

            <span class="c1"># 1. Process parameters</span>
            <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">section_list</span><span class="p">:</span>
                <span class="n">field_process_func</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;_process_</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">section</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
                <span class="k">if</span> <span class="n">field_process_func</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
                    <span class="n">field_process_func</span><span class="p">()</span>

                <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]</span> <span class="ow">and</span>
                   <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;recipe&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">])</span> <span class="ow">and</span>
                    <span class="n">section</span><span class="o">+</span><span class="s1">&#39;_method_parameters&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">):</span>

                    <span class="n">field_process_parameters_func</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">&#39;_process_</span><span class="si">{}</span><span class="s1">_method_parameters&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">section</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
                    <span class="k">if</span> <span class="n">field_process_parameters_func</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
                        <span class="n">field_process_parameters_func</span><span class="p">()</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">_add_hash_to_method_parameters</span><span class="p">()</span>

            <span class="c1"># 2. Methods and recipies</span>
            <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">section_list</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">process_method_parameters</span><span class="p">(</span><span class="n">section</span><span class="o">=</span><span class="n">section</span><span class="p">)</span>

            <span class="c1"># 3. Inject dependencies</span>
            <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">section_list</span><span class="p">:</span>
                <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">],</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]:</span>
                    <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]]):</span>
                        <span class="k">if</span> <span class="p">(</span><span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span> <span class="ow">and</span>
                            <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="p">[</span><span class="n">section</span><span class="p">]</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">key</span><span class="p">]):</span>

                            <span class="n">fields</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
                            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">fields</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
                                <span class="n">item</span><span class="p">[</span><span class="s1">&#39;dependency_parameters&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span>
                                    <span class="bp">self</span><span class="p">[</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">key</span><span class="p">]]</span>
                                <span class="p">)</span>

                                <span class="n">item</span><span class="p">[</span><span class="s1">&#39;dependency_method&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">method_dependencies</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">key</span><span class="p">]</span>

                            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">fields</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
                                <span class="n">item</span><span class="p">[</span><span class="s1">&#39;dependency_parameters&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span>
                                    <span class="bp">self</span><span class="p">[</span><span class="n">fields</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">][</span><span class="n">fields</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span>
                                <span class="p">)</span>

                                <span class="n">item</span><span class="p">[</span><span class="s1">&#39;dependency_method&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fields</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>

            <span class="c1"># 4. Add hash</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">_add_hash_to_main_parameters</span><span class="p">()</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">_add_main_hash</span><span class="p">()</span>

            <span class="c1"># 5. Post process paths</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">_postprocess_paths</span><span class="p">(</span>
                <span class="n">create_directories</span><span class="o">=</span><span class="n">create_directories</span><span class="p">,</span>
                <span class="n">create_parameter_hints</span><span class="o">=</span><span class="n">create_parameter_hints</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">processed</span> <span class="o">=</span> <span class="kc">True</span>

            <span class="c1"># 6. Clean up</span>
            <span class="c1"># self._clean_unused_parameters()</span>

        <span class="k">return</span> <span class="bp">self</span></div>

<div class="viewcode-block" id="ParameterContainer.process_method_parameters"><a class="viewcode-back" href="../../generated/dcase_framework.parameters.ParameterContainer.process_method_parameters.html#dcase_framework.parameters.ParameterContainer.process_method_parameters">[docs]</a>    <span class="k">def</span> <span class="nf">process_method_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Process methods and recipes in the section</span>

<span class="sd">        Processing rules for fields:</span>

<span class="sd">        - &quot;method&quot; =&gt; search for parameters from [section]_method_parameters -section</span>
<span class="sd">        - &quot;recipe&quot; =&gt; parse recipe and search for parameters from [section]_method_parameters -section</span>
<span class="sd">        - &quot;\*recipe&quot; =&gt; parse recipe</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        section : str</span>
<span class="sd">            Section name</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Invalid method for parameter field</span>


<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">            self</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="c1"># Inject method parameters</span>
        <span class="k">if</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]:</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]:</span>
                <span class="k">if</span> <span class="p">(</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span> <span class="ow">in</span> <span class="bp">self</span> <span class="ow">and</span>
                   <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">]):</span>

                    <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="s1">&#39;parameters&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span>
                        <span class="bp">self</span><span class="p">[</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">][</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]]</span>
                    <span class="p">)</span>

                <span class="k">else</span><span class="p">:</span>
                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Invalid method for parameter field, </span><span class="si">{field}</span><span class="s1">-&gt;method=</span><span class="si">{method}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                        <span class="n">field</span><span class="o">=</span><span class="n">section</span><span class="p">,</span>
                        <span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]</span>
                    <span class="p">)</span>

                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                    <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="c1"># parse recipes</span>
            <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]:</span>
                <span class="k">if</span> <span class="n">field</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;recipe&#39;</span><span class="p">]):</span>
                    <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">field</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_recipe</span><span class="p">(</span><span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="n">field</span><span class="p">])</span>

            <span class="c1"># Inject recipes</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;recipe&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">]:</span>
                <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{}</span>
                <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;recipe&#39;</span><span class="p">]]:</span>
                    <span class="k">if</span> <span class="p">(</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span> <span class="ow">in</span> <span class="bp">self</span> <span class="ow">and</span>
                       <span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">]):</span>

                        <span class="bp">self</span><span class="p">[</span><span class="n">section</span><span class="p">][</span><span class="s1">&#39;parameters&#39;</span><span class="p">][</span><span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]]</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span>
                            <span class="bp">self</span><span class="p">[</span><span class="n">section</span> <span class="o">+</span> <span class="s1">&#39;_method_parameters&#39;</span><span class="p">][</span><span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]]</span>
                        <span class="p">)</span>

                    <span class="k">else</span><span class="p">:</span>
                        <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Cannot find any parameters for the method in the recipe field, </span><span class="si">{field}</span><span class="s1">-&gt;recipe=</span><span class="si">{method}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                            <span class="n">field</span><span class="o">=</span><span class="n">section</span><span class="p">,</span>
                            <span class="n">method</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]]</span>
                        <span class="p">)</span>

                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">return</span> <span class="bp">self</span></div>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="p">,</span> <span class="n">create</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
        <span class="k">def</span> <span class="nf">make_path</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="k">try</span><span class="p">:</span>
                    <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
                <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">exception</span><span class="p">:</span>
                    <span class="k">pass</span>
        <span class="k">if</span> <span class="n">create</span><span class="p">:</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">paths</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
                <span class="n">make_path</span><span class="p">(</span><span class="n">paths</span><span class="p">)</span>

            <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">paths</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
                <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">paths</span><span class="p">):</span>
                    <span class="n">make_path</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>

            <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">paths</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
                <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">paths</span><span class="p">:</span>
                    <span class="n">make_path</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_preprocess_paths</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="c1"># Translate separators if in Windows</span>
        <span class="k">if</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;Windows&#39;</span><span class="p">:</span>
            <span class="k">for</span> <span class="n">path_field</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">]:</span>
                <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">path_field</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">path_field</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span>

        <span class="c1"># If given path is relative, make it absolute</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.data&#39;</span><span class="p">)):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">,</span>
                                                <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.data&#39;</span><span class="p">))</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.system_base&#39;</span><span class="p">)):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">,</span>
                                                       <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.system_base&#39;</span><span class="p">))</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer_challenge_output&#39;</span><span class="p">)):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;recognizer_challenge_output&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">,</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer_challenge_output&#39;</span><span class="p">)</span>
            <span class="p">)</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.logs&#39;</span><span class="p">)):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;logs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">project_base</span><span class="p">,</span>
                                                <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.logs&#39;</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">_postprocess_paths</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">create_directories</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">create_parameter_hints</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
        <span class="c1"># Make sure extended paths exists before saving parameters in them</span>

        <span class="c1"># Check main paths</span>
        <span class="k">if</span> <span class="n">create_directories</span><span class="p">:</span>
            <span class="k">if</span> <span class="s1">&#39;data&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">]:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;data&#39;</span><span class="p">])</span>
            <span class="k">if</span> <span class="s1">&#39;system_base&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">]:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">])</span>
            <span class="k">if</span> <span class="s1">&#39;logs&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">]:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;logs&#39;</span><span class="p">])</span>
            <span class="k">if</span> <span class="s1">&#39;recognizer_challenge_output&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">]:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;recognizer_challenge_output&#39;</span><span class="p">])</span>

        <span class="c1"># Check path_structure</span>
        <span class="k">for</span> <span class="n">field</span><span class="p">,</span> <span class="n">structure</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path_structure</span><span class="p">):</span>
            <span class="n">path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_extended_path</span><span class="p">(</span><span class="n">path_label</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> <span class="n">structure</span><span class="o">=</span><span class="n">structure</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">create_directories</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_check_paths</span><span class="p">(</span><span class="n">paths</span><span class="o">=</span><span class="n">path</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">create_parameter_hints</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_save_path_parameters</span><span class="p">(</span>
                    <span class="n">base</span><span class="o">=</span><span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">],</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">field</span><span class="p">])],</span>
                    <span class="n">structure</span><span class="o">=</span><span class="n">structure</span>
                <span class="p">)</span>

            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">field</span><span class="p">]</span> <span class="o">=</span> <span class="n">path</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_join_paths</span><span class="p">(</span><span class="n">path_parts</span><span class="p">):</span>
        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">path_parts</span><span class="p">):</span>
                <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
                    <span class="n">path_parts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">value</span><span class="p">]</span>

            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">3</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">5</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
                                                    <span class="n">path_parts</span><span class="p">[</span><span class="mi">4</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">6</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
                                                    <span class="n">path_parts</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">5</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">7</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
                                                    <span class="n">path_parts</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">6</span><span class="p">]))</span>
            <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">8</span><span class="p">:</span>
                <span class="n">path_parts</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">path_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
                                                    <span class="n">path_parts</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span> <span class="n">path_parts</span><span class="p">[</span><span class="mi">7</span><span class="p">]))</span>
        <span class="n">out_path</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">path_parts</span><span class="p">:</span>
            <span class="n">out_path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="o">*</span><span class="n">l</span><span class="p">))</span>
        <span class="k">return</span> <span class="n">out_path</span>

    <span class="k">def</span> <span class="nf">_get_extended_path</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path_label</span><span class="p">,</span> <span class="n">structure</span><span class="p">):</span>
        <span class="n">path_parts</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">],</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">path_label</span><span class="p">])]</span>
        <span class="k">if</span> <span class="n">structure</span><span class="p">:</span>
            <span class="n">keys</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="n">wild_card_found</span> <span class="o">=</span> <span class="kc">False</span>
            <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">structure</span><span class="p">:</span>
                <span class="k">if</span> <span class="s1">&#39;*&#39;</span> <span class="ow">in</span> <span class="n">part</span><span class="p">:</span>
                    <span class="n">wild_card_found</span> <span class="o">=</span> <span class="kc">True</span>
                    <span class="n">path_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span><span class="p">[:</span><span class="n">part</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">])</span>
                    <span class="k">if</span> <span class="n">path_</span><span class="p">:</span>
                        <span class="n">keys</span> <span class="o">=</span> <span class="n">path_</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>

                <span class="n">param_hash</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span> <span class="o">+</span> <span class="s1">&#39;._hash&#39;</span><span class="p">)</span>
                <span class="k">if</span> <span class="n">param_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
                    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">param_hash</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
                        <span class="n">directory_name</span> <span class="o">=</span> <span class="p">[]</span>
                        <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">param_hash</span><span class="p">:</span>
                            <span class="n">directory_name</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s1">&#39;_&#39;</span><span class="o">+</span><span class="n">h</span><span class="p">)</span>
                    <span class="k">else</span><span class="p">:</span>
                        <span class="n">directory_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_directory_name</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="n">part</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">param_hash</span><span class="o">=</span><span class="n">param_hash</span><span class="p">)</span>

                    <span class="n">path_parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">directory_name</span><span class="p">)</span>

            <span class="n">paths</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_paths</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span>

            <span class="k">if</span> <span class="ow">not</span> <span class="n">wild_card_found</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">paths</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
                <span class="k">return</span> <span class="n">paths</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">keys</span><span class="p">,</span> <span class="n">paths</span><span class="p">))</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">],</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">path_label</span><span class="p">])</span>

    <span class="k">def</span> <span class="nf">_get_directory_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">param_hash</span><span class="p">):</span>
        <span class="k">if</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;Windows&#39;</span><span class="p">:</span>
            <span class="c1"># Use short directory names and truncated hash for Windows, as it has path length limit (260)</span>
            <span class="k">return</span> <span class="n">param_hash</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">20</span><span class="p">]</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="n">param_hash</span>

    <span class="k">def</span> <span class="nf">_save_path_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">base</span><span class="p">,</span> <span class="n">structure</span><span class="p">,</span> <span class="n">parameter_filename</span><span class="o">=</span><span class="s1">&#39;parameters.yaml&#39;</span><span class="p">):</span>
        <span class="n">path_parts</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">base</span><span class="p">[</span><span class="mi">0</span><span class="p">])]</span>
        <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">structure</span><span class="p">:</span>
            <span class="n">param_hash</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span> <span class="o">+</span> <span class="s1">&#39;._hash&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">param_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
                <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">param_hash</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
                    <span class="n">directory_name</span> <span class="o">=</span> <span class="p">[]</span>
                    <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">param_hash</span><span class="p">:</span>
                        <span class="n">directory_name</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="n">h</span><span class="p">)</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="n">directory_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_directory_name</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="n">part</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="n">param_hash</span><span class="o">=</span><span class="n">param_hash</span><span class="p">)</span>

                <span class="n">parameters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span><span class="p">)</span>
                <span class="n">path_parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">directory_name</span><span class="p">)</span>

                <span class="n">current_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_paths</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span>

                <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">current_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
                    <span class="n">ParameterContainer</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">parameter_filename</span><span class="p">))</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parameters</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
                        <span class="n">ParameterContainer</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">parameter_filename</span><span class="p">))</span>
                    <span class="k">else</span><span class="p">:</span>
                        <span class="k">for</span> <span class="n">path_id</span><span class="p">,</span> <span class="n">path</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">current_path</span><span class="p">):</span>
                            <span class="k">if</span> <span class="n">parameters</span><span class="p">[</span><span class="n">path_id</span><span class="p">]:</span>
                                <span class="n">ParameterContainer</span><span class="p">(</span><span class="n">parameters</span><span class="p">[</span><span class="n">path_id</span><span class="p">])</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">parameter_filename</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">_save_path_parameters_all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">path_label</span><span class="p">,</span> <span class="n">structure</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">path_structure</span><span class="p">):</span>
            <span class="n">path_parts</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;system_base&#39;</span><span class="p">],</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="n">path_label</span><span class="p">])]</span>
            <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">structure</span><span class="p">:</span>
                <span class="n">param_hash</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span> <span class="o">+</span> <span class="s1">&#39;.hash&#39;</span><span class="p">)</span>
                <span class="n">parameters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">dotted_path</span><span class="o">=</span><span class="n">part</span><span class="p">)</span>
                <span class="n">path_parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">param_hash</span><span class="p">)</span>

                <span class="n">current_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_paths</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span>

                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">current_path</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
                    <span class="n">ParameterContainer</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s1">&#39;parameters.yaml&#39;</span><span class="p">))</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="k">for</span> <span class="n">path_id</span><span class="p">,</span> <span class="n">path</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">current_path</span><span class="p">):</span>
                        <span class="k">if</span> <span class="n">parameters</span><span class="p">[</span><span class="n">path_id</span><span class="p">]:</span>
                            <span class="n">ParameterContainer</span><span class="p">(</span><span class="n">parameters</span><span class="p">[</span><span class="n">path_id</span><span class="p">])</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;parameters.yaml&#39;</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">_add_hash_to_main_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">field</span><span class="p">,</span> <span class="n">params</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">params</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
                <span class="k">if</span> <span class="n">field</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span> <span class="ow">and</span> <span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">]:</span>
                    <span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">][</span><span class="s1">&#39;_hash&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hash</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">])</span>

    <span class="k">def</span> <span class="nf">_add_hash_to_method_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">:</span>
            <span class="k">if</span> <span class="n">field</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;_method_parameters&#39;</span><span class="p">):</span>
                <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">params</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">]):</span>
                    <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
                        <span class="n">params</span><span class="p">[</span><span class="s1">&#39;_hash&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hash</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_add_main_hash</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="k">for</span> <span class="n">field</span><span class="p">,</span> <span class="n">params</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">params</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
                <span class="k">if</span> <span class="n">field</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">control_sections</span> <span class="ow">and</span> <span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">]:</span>
                    <span class="n">data</span><span class="p">[</span><span class="n">field</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hash</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">])</span>
        <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;_hash&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hash</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_parse_recipe</span><span class="p">(</span><span class="n">recipe</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Parse feature vector recipe</span>

<span class="sd">        Overall format: [block #1];[block #2];[block #3];...</span>

<span class="sd">        Block formats:</span>
<span class="sd">         - [extractor (string)] = full vector</span>
<span class="sd">         - [extractor (string)]=[start index (int)]-[end index (int)] =&gt; default channel 0 and vector [start:end]</span>
<span class="sd">         - [extractor (string)]=[channel (int)]:[start index (int)]-[end index (int)] =&gt; specified channel and vector [start:end]</span>
<span class="sd">         - [extractor (string)]=1,2,3,4,5 =&gt; vector [1,2,3,4,4]</span>
<span class="sd">         - [extractor (string)]=0 =&gt; specified channel and full vector</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        recipe : str</span>
<span class="sd">            Feature recipe</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        data : dict</span>
<span class="sd">            Feature recipe structure</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="c1"># Define delimiters</span>
        <span class="n">delimiters</span> <span class="o">=</span> <span class="p">{</span>
            <span class="s1">&#39;block&#39;</span><span class="p">:</span> <span class="s1">&#39;;&#39;</span><span class="p">,</span>
            <span class="s1">&#39;detail&#39;</span><span class="p">:</span> <span class="s1">&#39;=&#39;</span><span class="p">,</span>
            <span class="s1">&#39;dimension&#39;</span><span class="p">:</span> <span class="s1">&#39;:&#39;</span><span class="p">,</span>
            <span class="s1">&#39;segment&#39;</span><span class="p">:</span> <span class="s1">&#39;-&#39;</span><span class="p">,</span>
            <span class="s1">&#39;vector&#39;</span><span class="p">:</span> <span class="s1">&#39;,&#39;</span>
        <span class="p">}</span>

        <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="n">labels</span> <span class="o">=</span> <span class="n">recipe</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">delimiters</span><span class="p">[</span><span class="s1">&#39;block&#39;</span><span class="p">])</span>
        <span class="k">for</span> <span class="n">label</span> <span class="ow">in</span> <span class="n">labels</span><span class="p">:</span>
            <span class="n">label</span> <span class="o">=</span> <span class="n">label</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">label</span><span class="p">:</span>
                <span class="n">detail_parts</span> <span class="o">=</span> <span class="n">label</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">delimiters</span><span class="p">[</span><span class="s1">&#39;detail&#39;</span><span class="p">])</span>
                <span class="n">method</span> <span class="o">=</span> <span class="n">detail_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>

                <span class="c1"># Default values, used when only extractor is defined e.g. [extractor (string)]; [extractor (string)]</span>
                <span class="n">vector_index_structure</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;channel&#39;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
                    <span class="s1">&#39;selection&#39;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
                    <span class="s1">&#39;full&#39;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
                <span class="p">}</span>

                <span class="c1"># Inspect recipe further</span>
                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">detail_parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
                    <span class="n">main_index_parts</span> <span class="o">=</span> <span class="n">detail_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">delimiters</span><span class="p">[</span><span class="s1">&#39;dimension&#39;</span><span class="p">])</span>
                    <span class="n">vector_indexing_string</span> <span class="o">=</span> <span class="n">detail_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>

                    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">main_index_parts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                        <span class="c1"># Channel has been defined,</span>
                        <span class="c1"># e.g. [extractor (string)]=[channel (int)]:[start index (int)]-[end index (int)]</span>
                        <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;channel&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">main_index_parts</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
                        <span class="n">vector_indexing_string</span> <span class="o">=</span> <span class="n">main_index_parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>

                    <span class="n">vector_indexing</span> <span class="o">=</span> <span class="n">vector_indexing_string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">delimiters</span><span class="p">[</span><span class="s1">&#39;segment&#39;</span><span class="p">])</span>
                    <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">vector_indexing</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                        <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;start&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">vector_indexing</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
                        <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;end&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">vector_indexing</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="o">+</span> <span class="mi">1</span>
                        <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;full&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
                        <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;selection&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
                    <span class="k">else</span><span class="p">:</span>
                        <span class="n">vector_indexing</span> <span class="o">=</span> <span class="n">vector_indexing_string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">delimiters</span><span class="p">[</span><span class="s1">&#39;vector&#39;</span><span class="p">])</span>
                        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">vector_indexing</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                            <span class="n">a</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="n">vector_indexing</span><span class="p">))</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;full&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;selection&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;vector&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">a</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;channel&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">vector_indexing</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;full&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
                            <span class="n">vector_index_structure</span><span class="p">[</span><span class="s1">&#39;selection&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>

                    <span class="n">current_data</span> <span class="o">=</span> <span class="p">{</span>
                        <span class="s1">&#39;method&#39;</span><span class="p">:</span> <span class="n">method</span><span class="p">,</span>
                        <span class="s1">&#39;vector-index&#39;</span><span class="p">:</span> <span class="n">vector_index_structure</span><span class="p">,</span>
                        <span class="c1"># &#39;parameter-path&#39;: &#39;feature.params.&#39; + extractor</span>
                    <span class="p">}</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="n">current_data</span> <span class="o">=</span> <span class="p">{</span>
                        <span class="s1">&#39;method&#39;</span><span class="p">:</span> <span class="n">method</span><span class="p">,</span>
                    <span class="p">}</span>

                <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_data</span><span class="p">)</span>

        <span class="k">return</span> <span class="n">data</span>

    <span class="k">def</span> <span class="nf">_after_load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">processed</span> <span class="o">=</span> <span class="kc">False</span>

    <span class="k">def</span> <span class="nf">_clean_unused_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
            <span class="k">if</span> <span class="n">field</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;_method_parameters&#39;</span><span class="p">):</span>
                <span class="k">del</span> <span class="bp">self</span><span class="p">[</span><span class="n">field</span><span class="p">]</span>

    <span class="k">def</span> <span class="nf">_convert_main_level_to_dotted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="n">item</span><span class="p">:</span>
                <span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]]</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">magic_field</span><span class="p">[</span><span class="s1">&#39;parameters&#39;</span><span class="p">]])</span>
            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
                <span class="bp">self</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_process_logging</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">handler_name</span><span class="p">,</span> <span class="n">handler_data</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;logging&#39;</span><span class="p">][</span><span class="s1">&#39;parameters&#39;</span><span class="p">][</span><span class="s1">&#39;handlers&#39;</span><span class="p">]):</span>
            <span class="k">if</span> <span class="s1">&#39;filename&#39;</span> <span class="ow">in</span> <span class="n">handler_data</span><span class="p">:</span>
                <span class="n">handler_data</span><span class="p">[</span><span class="s1">&#39;filename&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;path&#39;</span><span class="p">][</span><span class="s1">&#39;logs&#39;</span><span class="p">],</span> <span class="n">handler_data</span><span class="p">[</span><span class="s1">&#39;filename&#39;</span><span class="p">])</span>

    <span class="k">def</span> <span class="nf">_process_feature_extractor</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;recipe&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;feature_stacker&#39;</span> <span class="ow">in</span> <span class="bp">self</span> <span class="ow">and</span>
           <span class="s1">&#39;stacking_recipe&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_stacker&#39;</span><span class="p">]):</span>

            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">][</span><span class="s1">&#39;recipe&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.stacking_recipe&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="s1">&#39;win_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;fs&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">][</span><span class="s1">&#39;win_length_samples&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.win_length_seconds&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.fs&#39;</span><span class="p">))</span>

        <span class="k">if</span> <span class="s1">&#39;hop_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;fs&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">][</span><span class="s1">&#39;hop_length_samples&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.fs&#39;</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">_process_feature_normalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_normalizer&#39;</span><span class="p">][</span><span class="s1">&#39;scene_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_normalizer&#39;</span><span class="p">][</span><span class="s1">&#39;active_scenes&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_normalizer&#39;</span><span class="p">][</span><span class="s1">&#39;event_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_normalizer&#39;</span><span class="p">][</span><span class="s1">&#39;active_events&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_process_feature_extractor_method_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="c1"># Change None feature parameter sections into empty dicts</span>
        <span class="k">for</span> <span class="n">method</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor_method_parameters&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
            <span class="k">if</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor_method_parameters&#39;</span><span class="p">][</span><span class="n">method</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
                <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor_method_parameters&#39;</span><span class="p">][</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>

        <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor_method_parameters&#39;</span><span class="p">]):</span>
            <span class="n">data</span><span class="p">[</span><span class="s1">&#39;method&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">method</span>

            <span class="c1"># Copy general parameters</span>
            <span class="k">if</span> <span class="s1">&#39;fs&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;fs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">][</span><span class="s1">&#39;fs&#39;</span><span class="p">]</span>

            <span class="k">if</span> <span class="s1">&#39;win_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;win_length_seconds&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.win_length_seconds&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="s1">&#39;win_length_samples&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;win_length_samples&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.win_length_samples&#39;</span><span class="p">)</span>

            <span class="k">if</span> <span class="s1">&#39;hop_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;hop_length_seconds&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="s1">&#39;hop_length_samples&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;hop_length_samples&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_samples&#39;</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_process_feature_aggregator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">if</span> <span class="s1">&#39;win_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_aggregator&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;win_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_aggregator&#39;</span><span class="p">][</span><span class="s1">&#39;win_length_frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.win_length_seconds&#39;</span><span class="p">)</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">))))</span>

        <span class="k">if</span> <span class="s1">&#39;hop_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_aggregator&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">&#39;win_length_seconds&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_extractor&#39;</span><span class="p">]:</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;feature_aggregator&#39;</span><span class="p">][</span><span class="s1">&#39;hop_length_frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.hop_length_seconds&#39;</span><span class="p">)</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">))))</span>

    <span class="k">def</span> <span class="nf">_process_learner</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="n">win_length_seconds</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.win_length_seconds&#39;</span><span class="p">)</span>
        <span class="n">hop_length_seconds</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.enable&#39;</span><span class="p">):</span>
            <span class="n">win_length_seconds</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.win_length_seconds&#39;</span><span class="p">)</span>
            <span class="n">hop_length_seconds</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.hop_length_seconds&#39;</span><span class="p">)</span>

        <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;win_length_seconds&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">win_length_seconds</span><span class="p">)</span>
        <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;hop_length_seconds&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">hop_length_seconds</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;scene_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;active_scenes&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;event_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner&#39;</span><span class="p">][</span><span class="s1">&#39;active_events&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_process_learner_method_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s1">&#39;learner_method_parameters&#39;</span><span class="p">]):</span>
            <span class="n">data</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;training.epoch_processing.enable&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;training.epoch_processing.recognizer&#39;</span><span class="p">):</span>
                <span class="n">data</span><span class="p">[</span><span class="s1">&#39;training&#39;</span><span class="p">][</span><span class="s1">&#39;epoch_processing&#39;</span><span class="p">][</span><span class="s1">&#39;recognizer&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer&#39;</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_process_recognizer</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;scene_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;active_scenes&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;event_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;active_events&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.frame_accumulation.enable&#39;</span><span class="p">)</span> <span class="ow">and</span>
           <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.frame_accumulation.window_length_seconds&#39;</span><span class="p">)):</span>

            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;frame_accumulation&#39;</span><span class="p">][</span><span class="s1">&#39;window_length_frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.frame_accumulation.window_length_seconds&#39;</span><span class="p">)</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.hop_length_seconds&#39;</span><span class="p">)))</span>

        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_activity_processing.enable&#39;</span><span class="p">)</span> <span class="ow">and</span>
           <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_activity_processing.window_length_seconds&#39;</span><span class="p">)):</span>

            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;recognizer&#39;</span><span class="p">][</span><span class="s1">&#39;event_activity_processing&#39;</span><span class="p">][</span><span class="s1">&#39;window_length_frames&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_activity_processing.window_length_seconds&#39;</span><span class="p">)</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.hop_length_seconds&#39;</span><span class="p">)))</span>

    <span class="k">def</span> <span class="nf">_process_evaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;evaluator&#39;</span><span class="p">][</span><span class="s1">&#39;scene_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.scene_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;evaluator&#39;</span><span class="p">][</span><span class="s1">&#39;active_scenes&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_scenes&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;evaluator&#39;</span><span class="p">][</span><span class="s1">&#39;event_handling&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.event_handling&#39;</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="p">[</span><span class="s1">&#39;evaluator&#39;</span><span class="p">][</span><span class="s1">&#39;active_events&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.active_events&#39;</span><span class="p">)</span></div>

</pre></div>

           </div>
           <div class="articleComments">
            
           </div>
          </div>
          <footer>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2017, Toni Heittola et al..

    </p>
  </div> 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../',
            VERSION:'1.0',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: '.txt'
        };
    </script>
      <script type="text/javascript" src="../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="../../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>